#include "Mock.h"
#include <string>

std::ostream& operator << (std::ostream& out, const UnexpectedCallException ex) {
	out << "UnexpectedCallException MethodName:" << ex.methodName << " file:" << ex.file << " line:" << ex.line;
	return out;
}
bool operator == (const UnexpectedCallException e1, UnexpectedCallException e2) {
	if (e1.methodName != e2.methodName || e1.file != e2.file || e1.line != e2.line) {
		return false;
	}
	return true;
}

bool Mock::recordMode = true;

void Mock::actual(string methodName) {
	if (expected.empty()) {
		// unexpected call
		throw 0;
	}
	else {
		// unexpected call
		throw 0;
	}
}

void Mock::expect(string methodName) {
//	expected.push_back(methodName);
	Expectation e;
	e.methodName = methodName;
//	expectations.push_back(e);
}

void Mock::verify() {
	for (unsigned int i=0; i<expected.size(); i++) {
		// unsatisfied expected call
		throw 0;
	}
}